In conventional printing systems, a printer driver resident at a host computer prepares and sends data to the printer. The printer is equipped with a memory of sufficient size to store enough data to print multiple swaths. From this data, the printer makes decisions regarding how to print the data. For example, the printer determines the color type and outside pixel boundaries for each swath and uses this information to prepare the paper position, the print head position, and so forth for printing the swath. The buffer memory in conventional printers held sufficient data to make these decisions.
The printing environment is fiercely competitive. There is an ever-present pressure to reduce the cost for printers without degrading their quality. Reducing memory size in the printer is one approach to cutting costs. This poses a problem, however, because a smaller memory cannot hold enough information for the printer to make correct and efficient swathing decisions.
Apart from cost-cutting concerns, there is also a performance issue facing conventional printers. There are two common bottlenecks that detrimentally impact printer performance. One bottleneck is data I/O (input/output) which is caused by the increasing data requirements for higher resolution black and higher depth color (i.e., more than one bit per pixel). The second bottleneck concerns movement of the printer mechanism. For carriage-type mechanisms, for example, there is a maximum speed at which the print head carriage can be moved and the pen fired.
The current printing process is to wait for the data through the I/O, make the swathing decisions, and then print the data within the swath. The carriage does not move until all of the data for the swath has come through the I/O. Additionally, with a reduced-size memory, the I/O transfer for the next swath must wait until the printing is complete on the previous swath so that the memory is available for reuse.
The inventors have developed a printer system and method that enable use of a reduced-size memory without degrading the ability of the printer to make swath decisions and that reduce I/O and mechanism bottlenecks.